#include <stdint.h>

#define DBL_EXP_BASE 1023

#define  likely(x)  __builtin_expect((x), 1)
#define  unlikely(x)  __builtin_expect((x), 0)

#define C2 (1.0/(1.0*2.0))
#define C3 (1.0/(1.0*2.0*3.0))
#define C4 (1.0/(1.0*2.0*3.0*4.0))
#define C5 (1.0/(1.0*2.0*3.0*4.0*5.0))

#define LN2	0.69314718055994530942
#define INV_LN2	1.44269504088896340736
#define Ln2hiN  (0x1.62e42fefap-1)
#define Ln2loN  (0x1.cf79abc9e3b3ap-40)

// LN2_X_961_AS_UINT64=ln(2)*961
#define LN2_X_961_AS_UINT64   0x4084d0ea5fca54de

// LN2_X_1022_AS_UINT64=ln(2)*1022
#define LN2_X_1022_AS_UINT64   0x4086232bdd7abcd1

// exp_data_52[i]= (2^(i/128)-1.0)*2^52
uint64_t exp_data_52[128];

// exp_data_61[i]= 2^(i/128)*2^61
uint64_t exp_data_61[128];

// exp_data_64[i]= (2^(i/128)-1.0)*2^64
uint64_t exp_data_64[128];

